package config;

import java.io.Serializable;
import  cache.Cache;

/**
 * A basic read-only representation of a {@link Cache}
 * <P>
 * The Properties provided by this interface are used by {@link cache.CacheManager}s to configure {@link Cache}s
 * <p>
 * Implementations of the interface must override {@link Object#hashCode()} and {@link Object#equals(Object)}, as
 * the {@link Configuration} is often compared at runtime.
 * @param <K> the type of keys maintained the cache
 * @param <V> the type of cached values
 * @author mayanwei
 */
public interface Configuration <K, V> extends Serializable {

    Class<K> getKeyType();

    Class<V> getValueType();

    boolean isStorebyValue();

}
